#!/usr/bin/env bash
# ==========  中文配置区  ==========
# 本机作为“离线权威时间源”使用的 stratum 层级，数字越小越“权威”，离线常用 5~10
STRATUM=5
# 允许哪个网段来同步，改成你的局域网段即可，末尾一定是 0/24
ALLOW_LAN="192.168.137.101/24"
ALLOW_LAN="192.168.137.104/24"
ALLOW_LAN="192.168.137.102/24"
ALLOW_LAN="192.168.137.100/24"
# 本机绑定的 NTP 服务端口，一般别动
NTP_PORT=123
# ==========  配置结束  ==========

set -e
[[ $EUID -ne 0 ]] && { echo "请用 sudo 运行"; exit 1; }

echo ">>> 1. 生成离线权威配置"
cat > /etc/chrony/chrony.conf <<EOF
# ---- 离线权威时间源 ----
# 不允许再去外网池
# 本机本地时钟当权威
local stratum $STRATUM
# 允许局域网设备
allow $ALLOW_LAN
# 监听所有网卡
bindaddress 0.0.0.0
# 使用默认端口
port $NTP_PORT
EOF

echo ">>> 2. 重启 chrony 服务"
systemctl restart chrony

echo ">>> 3. 放开防火墙（ufw 若启用）"
ufw allow $NTP_PORT/udp 2>/dev/null || true

echo ">>> 4. 验证本机已就绪"
chronyc tracking
echo "✅ 宿主机已设为离线权威源，stratum=$STRATUM，允许网段：$ALLOW_LAN"
